package com.neuedu.corejava.ch10;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class GenericClass {

	public static void main(String[] args) {
		//泛型集合
		//在大部分情况下，一个集合只用于保存一类数据
		//为了避免在取数据时进行类型检查，可以使用泛型集合，在保存数据时进行类型检查
		//在定义集合对象时进行类型的声明
		//List<Computer> list = new ArrayList<Computer>();
		List<Computer> list = new ArrayList<>();
		list.add(new Computer("HP",5000));
		list.add(new Computer("MP",4000));
		list.add(new Computer("CP",3000));
		
		//使用泛型集合在保存数据时进行类型检查，不符合的类型会产生类型检查异常
		for (Computer computer : list) {
			System.out.println(computer);
		}
		
		//使用泛型集合后获取数据不需要进行类型转换
		Computer computer = list.get(0);
		
		Iterator<Computer> iterator = list.iterator();
		while (iterator.hasNext()) {
			//使用泛型后，可以保障取数据时不会发生类型转换异常
			Computer computer2 = iterator.next();
			System.out.println(computer2);
		}
		

	}

}
